home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / GL / uglmesa.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-07-16  |  4.2 KB  |  156 lines

  1. /* uglmesa.h - Public header UGL/Mesa */
  2.  
  3. /* Copyright (C) 2001 by Wind River Systems, Inc */
  4.  
  5. /*
  6.  * Mesa 3-D graphics library
  7.  * Version:  4.0
  8.  *
  9.  * The MIT License
  10.  * Permission is hereby granted, free of charge, to any person obtaining a
  11.  * copy of this software and associated documentation files (the "Software"),
  12.  * to deal in the Software without restriction, including without limitation
  13.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  14.  * and/or sell copies of the Software, and to permit persons to whom the
  15.  * Software is furnished to do so, subject to the following conditions:
  16.  *
  17.  * The above copyright notice and this permission notice shall be included
  18.  * in all copies or substantial portions of the Software.
  19.  *
  20.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  21.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  22.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  23.  * THE AUTHORS OR COPYRIGHT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  24.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  25.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  26.  * DEALINGS IN THE SOFTWARE.
  27.  */
  28.  
  29. /*
  30.  * Author:
  31.  * Stephane Raimbault <stephane.raimbault@windriver.com> 
  32.  */
  33.  
  34. #ifndef UGLMESA_H
  35. #define UGLMESA_H
  36.  
  37. #ifdef __cplusplus
  38. extern "C" {
  39. #endif
  40.  
  41. #define UGL_MESA_MAJOR_VERSION 4
  42. #define UGL_MESA_MINOR_VERSION 0
  43.  
  44. #include <GL/gl.h>
  45. #include <ugl/ugl.h>
  46.  
  47. /*
  48.  * Values for display mode of uglMesaCreateContext ()
  49.  */
  50.  
  51. /*
  52.  * With these mask values, it's possible to test double buffer mode
  53.  * with UGL_MESA_DOUBLE mask
  54.  *
  55.  * SINGLE  0000 0001
  56.  * DOUBLE  0000 0110
  57.  * -  SOFT 0000 0010
  58.  * -  HARD 0000 0100
  59.  * WINDML  0001 0000
  60.  *
  61.  * 
  62.  */
  63. #define UGL_MESA_SINGLE            0x01
  64. #define UGL_MESA_DOUBLE            0x06
  65. #define UGL_MESA_DOUBLE_SOFTWARE   0x02
  66. #define UGL_MESA_DOUBLE_HARDWARE   0x04
  67.     
  68. #define UGL_MESA_WINDML_EXCLUSIVE  0x10
  69.  
  70. #define UGL_MESA_FULLSCREEN_WIDTH  0x0
  71. #define UGL_MESA_FULLSCREEN_HEIGHT 0x0
  72.  
  73. /*
  74.  * uglMesaPixelStore() parameters:
  75.  */
  76.     
  77. #define UGL_MESA_ROW_LENGTH       0x20
  78. #define UGL_MESA_Y_UP              0x21
  79.  
  80. /* 
  81.  * Accepted by uglMesaGetIntegerv:
  82.  */
  83.  
  84. #define UGL_MESA_LEFT_X                0x01
  85. #define UGL_MESA_TOP_Y                0x02    
  86. #define UGL_MESA_WIDTH                0x03
  87. #define UGL_MESA_HEIGHT                0x04
  88. #define UGL_MESA_DISPLAY_WIDTH          0x05
  89. #define UGL_MESA_DISPLAY_HEIGHT         0x06
  90. #define UGL_MESA_COLOR_FORMAT            0x07
  91. #define UGL_MESA_COLOR_MODEL            0x08
  92. #define UGL_MESA_PIXEL_FORMAT           0x09
  93. #define UGL_MESA_TYPE                0x0A
  94. #define UGL_MESA_RGB                0x0B
  95. #define UGL_MESA_COLOR_INDEXED          0x0C
  96. #define UGL_MESA_SINGLE_BUFFER          0x0D
  97. #define UGL_MESA_DOUBLE_BUFFER          0x0E
  98. #define UGL_MESA_DOUBLE_BUFFER_SOFTWARE 0x0F
  99. #define UGL_MESA_DOUBLE_BUFFER_HARDWARE 0x10
  100.     
  101. /*
  102.  * typedefs
  103.  */
  104.  
  105. typedef struct uglMesaContext * UGL_MESA_CONTEXT;
  106.     
  107. UGL_MESA_CONTEXT uglMesaCreateNewContext (GLenum mode,
  108.                       UGL_MESA_CONTEXT share_list);
  109.  
  110. UGL_MESA_CONTEXT  uglMesaCreateNewContextExt (GLenum mode,
  111.                           GLint depth_bits,
  112.                           GLint stencil_bits,
  113.                           GLint accum_red_bits,
  114.                           GLint accum_green_bits,
  115.                           GLint accum_blue_bits,
  116.                           GLint accum_alpha_bits,
  117.                           UGL_MESA_CONTEXT share_list);
  118.  
  119. GLboolean uglMesaMakeCurrentContext (UGL_MESA_CONTEXT umc,
  120.                      GLsizei left, GLsizei top,
  121.                      GLsizei width, GLsizei height);
  122.  
  123. GLboolean uglMesaMoveWindow (GLsizei dx, GLsizei dy);
  124.  
  125. GLboolean uglMesaMoveToWindow (GLsizei left, GLsizei top);
  126.  
  127. GLboolean uglMesaResizeWindow (GLsizei dw, GLsizei dh);
  128.  
  129. GLboolean uglMesaResizeToWindow (GLsizei width, GLsizei height);
  130.  
  131. void uglMesaDestroyContext (void);
  132.  
  133. UGL_MESA_CONTEXT uglMesaGetCurrentContext (void);
  134.  
  135. void uglMesaSwapBuffers (void);
  136.  
  137. void uglMesaPixelStore (GLint pname, GLint value);
  138.  
  139. void uglMesaGetIntegerv (GLint pname, GLint *value);
  140.  
  141. GLboolean uglMesaGetDepthBuffer (GLint *width, GLint *height,
  142.                  GLint *bytesPerValue, void **buffer);
  143.  
  144. GLboolean uglMesaGetColorBuffer (GLint *width, GLint *height,
  145.                  GLint *format, void **buffer);
  146.  
  147. GLboolean uglMesaSetColor (GLubyte index, GLfloat red,
  148.                GLfloat green, GLfloat blue);
  149.   
  150. #ifdef __cplusplus
  151. }
  152. #endif
  153.  
  154.  
  155. #endif
  156.